The construction of software applications is time intensive and resource heavy. Companies often hire software developers to create and maintain software applications for use within their environment. For example, a manager in a medical facility may wish to utilize an application that automates the scheduling of medical procedures in order to save time and money. However, the manager may find that no suitable commercial application exists. In order to procure a suitable application, the manager and the medical facility may be forced to develop their own, custom application by hiring software developers to create the application.
Software such as an application that automates the scheduling of medical procedures may exist as part of a larger design definition that incorporates the actions of patients, doctors, and medical staff. The actions of non-application software entities and factors are an important aspect of the design definition that can affect the design of the application software, yet these are often excluded from application software requirements. Further, measurements of operational activities contained in the design definition, necessary for analysis and evaluation, may also be aspects of a design definition that may be excluded from application software requirements.
The software development process will likely include, at a minimum, a specification capture phase where software requirements are gathered, a development phase where the software is written, and a test phase where the software is tested. The process is time consuming and costly, especially, as is the case, where a company has a need for multiple custom applications or requires modifications to a custom application. The natural result of the process will likely be a custom software application tailored to a specific need, but not one that is flexible or re-usable; the company will have to invest additional time and resources to make any changes to the custom application or to create a new application.
A system and method that can analyze a design definition which has been reduced to data, identify measurements of operational activities contained in the design definition, and modify the design definition to include those measurements such that the design definition can be used to generate application software that includes the identified measurements may speed the development cycle and require fewer resources to produce more flexible, re-usable results.